package cn.qinhao.pethome.org.domain;

import cn.qinhao.pethome.basic.base.domain.BaseDomain;
import cn.qinhao.pethome.employee.domain.Employee;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Department extends BaseDomain {

    //部门编号
    private String sn;
    //部门名称
    private String name;
    //声明一个保存子部门的容器(因为刚开始本来就是空，所以为了防止后面第一次调用的时候空指针，先new一个list集合)
    @JsonInclude(JsonInclude.Include.NON_EMPTY)//里面得值不为空才返回数据
    private List<Department> sons=new ArrayList<>();
    //暂时不用
    private String dirPath;
    //部门状态 0 正常 ，-1 停用
    private Integer state;
    //部门管理员，关联Employee表id
    //数据字段虽然是 简单id 实际显示的时候需要更多信息
    private Long manager_id;
    //对应的manager的名字
    private Employee manager;
    //上级部门id
    private Long parent_id;
    //对应上级部门，获取对象之后可以点出部门名字，就不是只显示一个id了
    private Department parent;

}
/**
 * 理解
 *  {
 *      id:""
 *      sn:""
 *      name:""
 *      manager:{
 *          id:""
 *          usarname:""
 *      }
 *  }
 *
 */